\hypertarget{classCByteBuilder}{
\section{\-C\-Byte\-Builder \-Class \-Reference}
\label{classCByteBuilder}\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}}
}


\-Assembles bits to bytes. \-Splits bytes to bits.  




{\ttfamily \#include $<$byte\-\_\-builder.\-h$>$}

\-Inheritance diagram for \-C\-Byte\-Builder\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classCByteBuilder}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCByteBuilder_af41a3e140cc21163de07667f68042ed2}{\-C\-Byte\-Builder} (\hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$p\-Steg\-I\-O)
\item 
virtual \hyperlink{classCByteBuilder_acb4ce085b54226cffe1b4f0cd0f2b6a8}{$\sim$\-C\-Byte\-Builder} ()
\item 
virtual int \hyperlink{classCByteBuilder_a44d8333f2afb474e78cc12f05fce927d}{get\-Bit} (bool \&p\-Read\-Bit)
\begin{DoxyCompactList}\small\item\em get a data bit from the byte buffer \end{DoxyCompactList}\item 
virtual bool \hyperlink{classCByteBuilder_a104ad4c0f9efb592a6d1b43cfe3ba63b}{put\-Bit} (bool p\-Write\-Bit)
\begin{DoxyCompactList}\small\item\em put a data bit into the byte buffer \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCByteBuilder_a968e432cba7407d440fab8e8d1e138fe}{\-C\-Byte\-Builder} (const \hyperlink{classCByteBuilder}{\-C\-Byte\-Builder} \&)
\item 
\hyperlink{classCByteBuilder}{\-C\-Byte\-Builder} \& \hyperlink{classCByteBuilder_a7a7b84b1d3d3e2fdef5b069f058018cc}{operator=} (const \hyperlink{classCByteBuilder}{\-C\-Byte\-Builder} \&)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$ \hyperlink{classCByteBuilder_aa51efcb792c0a0b483a3808e5c61aa45}{m\-Steg\-I\-O}
\item 
unsigned char \hyperlink{classCByteBuilder_a9b9084adeee2d1429c91d88e4ffdee95}{m\-Buffer\-Read}
\item 
unsigned char \hyperlink{classCByteBuilder_a4a62d3f1475979a38358b7070a765528}{m\-Buffer\-Write}
\item 
int \hyperlink{classCByteBuilder_ac74eaa5b4ac86d52662f0f8cc934c3ef}{m\-Bits\-Used\-Read}
\item 
int \hyperlink{classCByteBuilder_a186bb20f499ca9e9efb37c2aa833e013}{m\-Bits\-Used\-Write}
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\-Assembles bits to bytes. \-Splits bytes to bits. 

\begin{DoxyAuthor}{\-Author}
gpitsch and rpoisel 
\end{DoxyAuthor}
\begin{DoxyNote}{\-Note}
capable to operate in full duplex
\end{DoxyNote}
this needs a \hyperlink{classIStegIO}{\-I\-Steg\-I\-O} as \char`\"{}real\char`\"{} data source/sink where the bytes are read from and written to 

\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCByteBuilder_af41a3e140cc21163de07667f68042ed2}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!\-C\-Byte\-Builder@{\-C\-Byte\-Builder}}
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{\-C\-Byte\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Byte\-Builder\-::\-C\-Byte\-Builder (
\begin{DoxyParamCaption}
\item[{{\bf \-I\-Steg\-I\-O} $\ast$}]{p\-Steg\-I\-O}
\end{DoxyParamCaption}
)}}
\label{classCByteBuilder_af41a3e140cc21163de07667f68042ed2}

\begin{DoxyParams}{\-Parameters}
{\em p\-Steg\-I\-O} & data source/sink for stego payload \\
\hline
\end{DoxyParams}
\hypertarget{classCByteBuilder_acb4ce085b54226cffe1b4f0cd0f2b6a8}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!$\sim$\-C\-Byte\-Builder@{$\sim$\-C\-Byte\-Builder}}
\index{$\sim$\-C\-Byte\-Builder@{$\sim$\-C\-Byte\-Builder}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{$\sim$\-C\-Byte\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Byte\-Builder\-::$\sim$\-C\-Byte\-Builder (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCByteBuilder_acb4ce085b54226cffe1b4f0cd0f2b6a8}
\hypertarget{classCByteBuilder_a968e432cba7407d440fab8e8d1e138fe}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!\-C\-Byte\-Builder@{\-C\-Byte\-Builder}}
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{\-C\-Byte\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Byte\-Builder\-::\-C\-Byte\-Builder (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Byte\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_a968e432cba7407d440fab8e8d1e138fe}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCByteBuilder_a44d8333f2afb474e78cc12f05fce927d}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!get\-Bit@{get\-Bit}}
\index{get\-Bit@{get\-Bit}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{get\-Bit}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Byte\-Builder\-::get\-Bit (
\begin{DoxyParamCaption}
\item[{bool \&}]{p\-Read\-Bit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCByteBuilder_a44d8333f2afb474e78cc12f05fce927d}


get a data bit from the byte buffer 

\begin{DoxyReturn}{\-Returns}
1 for more steg payload and 0 for no more steg payload (\-E\-O\-F) 
\end{DoxyReturn}


\-Implements \hyperlink{classIBitSource_a8033470e96c8810b748f42ce68abaa3a}{\-I\-Bit\-Source}.

\hypertarget{classCByteBuilder_a7a7b84b1d3d3e2fdef5b069f058018cc}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!operator=@{operator=}}
\index{operator=@{operator=}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Byte\-Builder}\& \-C\-Byte\-Builder\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Byte\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_a7a7b84b1d3d3e2fdef5b069f058018cc}
\hypertarget{classCByteBuilder_a104ad4c0f9efb592a6d1b43cfe3ba63b}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!put\-Bit@{put\-Bit}}
\index{put\-Bit@{put\-Bit}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{put\-Bit}]{\setlength{\rightskip}{0pt plus 5cm}bool \-C\-Byte\-Builder\-::put\-Bit (
\begin{DoxyParamCaption}
\item[{bool}]{p\-Write\-Bit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCByteBuilder_a104ad4c0f9efb592a6d1b43cfe3ba63b}


put a data bit into the byte buffer 

\begin{DoxyReturn}{\-Returns}
true if everything is ok, false tells the embedding engine to resynchronize 
\end{DoxyReturn}


\-Implements \hyperlink{classIBitSource_a2af07e746032f6506d94f9a487c6870e}{\-I\-Bit\-Source}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCByteBuilder_ac74eaa5b4ac86d52662f0f8cc934c3ef}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!m\-Bits\-Used\-Read@{m\-Bits\-Used\-Read}}
\index{m\-Bits\-Used\-Read@{m\-Bits\-Used\-Read}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{m\-Bits\-Used\-Read}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Byte\-Builder\-::m\-Bits\-Used\-Read}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_ac74eaa5b4ac86d52662f0f8cc934c3ef}
\hypertarget{classCByteBuilder_a186bb20f499ca9e9efb37c2aa833e013}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!m\-Bits\-Used\-Write@{m\-Bits\-Used\-Write}}
\index{m\-Bits\-Used\-Write@{m\-Bits\-Used\-Write}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{m\-Bits\-Used\-Write}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-C\-Byte\-Builder\-::m\-Bits\-Used\-Write}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_a186bb20f499ca9e9efb37c2aa833e013}
\hypertarget{classCByteBuilder_a9b9084adeee2d1429c91d88e4ffdee95}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!m\-Buffer\-Read@{m\-Buffer\-Read}}
\index{m\-Buffer\-Read@{m\-Buffer\-Read}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{m\-Buffer\-Read}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char {\bf \-C\-Byte\-Builder\-::m\-Buffer\-Read}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_a9b9084adeee2d1429c91d88e4ffdee95}
\hypertarget{classCByteBuilder_a4a62d3f1475979a38358b7070a765528}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!m\-Buffer\-Write@{m\-Buffer\-Write}}
\index{m\-Buffer\-Write@{m\-Buffer\-Write}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{m\-Buffer\-Write}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char {\bf \-C\-Byte\-Builder\-::m\-Buffer\-Write}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_a4a62d3f1475979a38358b7070a765528}
\hypertarget{classCByteBuilder_aa51efcb792c0a0b483a3808e5c61aa45}{
\index{\-C\-Byte\-Builder@{\-C\-Byte\-Builder}!m\-Steg\-I\-O@{m\-Steg\-I\-O}}
\index{m\-Steg\-I\-O@{m\-Steg\-I\-O}!CByteBuilder@{\-C\-Byte\-Builder}}
\subsubsection[{m\-Steg\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-I\-Steg\-I\-O}$\ast$ {\bf \-C\-Byte\-Builder\-::m\-Steg\-I\-O}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCByteBuilder_aa51efcb792c0a0b483a3808e5c61aa45}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{byte__builder_8h}{byte\-\_\-builder.\-h}\item 
\hyperlink{byte__builder_8cxx}{byte\-\_\-builder.\-cxx}\end{DoxyCompactItemize}
